package thisuse;

/**
 * @Author Stringzhua
 * @Date 2024/2/29 13:59
 * description:哪个对象调用,this就代表哪个对象
 */
public class This01 {
    public static void main(String[] args) {
        Dog dog = new Dog("大壮", 3);
        System.out.println("输出dog的hashCode值"+dog.hashCode());
        /*dog调用了info()方法*/
        dog.info();
        Dog dog2=new Dog("大黄",6);
        System.out.println("输出dog2的hashCode值"+dog2.hashCode());
        dog2.info();
    }
}

class Dog {//类
    String name;
    int age;

//    public Dog(String dName, int dAge) {//构造器
//        name = dName;
//        age = dAge;
//    }

    //如果构造器的形参能够直接写成属性名,就更好了
    //但是根据变量的作用域原则
    //构造器的name是局部变量,而不是属性
    //构造器的age是局部变量,而不是属性
    //-->引出this关键字来解决
    public Dog(String name, int age) {//构造器
//        name = name;
//        age = age;
        //this.name就是当前对象的属性
        this.name = name;
        this.age = age;
        System.out.println("this.hashCode"+this.hashCode());
    }

    public void info() {//成员方法,输出对象的属性信息
        System.out.println("this.hashCode"+this.hashCode());
        System.out.println(name + "  " + age + " ");
    }
}
